package org.springblade.modules.notice.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;
import org.springblade.modules.notice.vo.CommonEnumInfo;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author ysq
 * @Date 2024/09/19
 * @Description 发送渠道类型枚举
 */
@Getter
@AllArgsConstructor
public enum ChannelType {

    /**
     * 短信
     */
    SMS(1, "短信"),

    /**
     * 微信公众号
     */
    OFFICIAL_ACCOUNT(2, "公众号"),

    /**
     * 语音电话
     */
    VOICE(3, "语音电话"),

    /**
     * 飞书机器人
     */
    FEI_SHU_ROBOT(4, "飞书机器人"),

    /**
     * app通知栏
     */
    PUSH(5, "app"),

    /**
     * 梯无忧-系统消息
     */
    TWY_SYSTEM(6, "梯无忧pc"),

	IVR_VOICE(7, "交互式语音电话"),

//    MINI_PROGRAM(8, "小程序"),

    ;

    /**
     * 编码值
     */
    private final Integer code;

    /**
     * 描述
     */
    private final String desc;

	/**
	 * 获取可选列表
	 */
	public static List<CommonEnumInfo> getSelectList() {
		List<CommonEnumInfo> list = new ArrayList<>(16);
		for (ChannelType value : values()) {
			list.add(new CommonEnumInfo(value.getCode(), value.getDesc()));
		}
		return list;
	}

	public static String getDesc(Integer code) {
		for (ChannelType value : values()) {
			if (value.getCode().equals(code)) {
				return value.getDesc();
			}
		}
		return null;
	}
}
